package com.xinchuang.domain.entity;


import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;

/**
 * 
 * @TableName test_model_sub_table
 */
@TableName(value ="test_model_sub_table")
@Data
@ToString
public class TestModelSubTable implements Serializable {
    /**
     * 标记ID
     */
    @TableId
    private String planId;

    /**
     * 主表ID
     */
    private String parentPlanId;

    /**
     * 模具编号
     */
    private String moldId;

    /**
     * 模具名称
     */
    private String moldName;

    /**
     * 客户
     */
    private String customerName;

    /**
     * 钳工Id
     */
    @JSONField(name = "tongmanUnitId")
    private String tongmanId;

    /**
     * 钳工
     */
    @JSONField(name = "tongmanUserId")
    private String tongmanName;

    @JSONField(name = "tongmanName")
    @TableField(exist = false)
    private JSONArray tongmanArray;

    /**
     * 钳工名称
     */
    @TableField(exist = false)
    private String tongmanNameName;

    /**
     * 材料名称
     */
    private String materialName;

    /**
     * 材料重量
     */
    private String materialWeight;

    /**
     * 主要联络人Id
     */
    @JSONField(name = "projectManagerUnitId")
    private String projectManagerId;

    /**
     * 主要联络人名称
     */
    @JSONField(name = "projectManagerUserId")
    private String projectManagerName;

    @JSONField(name = "projectManagerId")
    @TableField(exist = false)
    private JSONArray projectManagerArray;

    @TableField(exist = false)
    private String projectManagerNameName;

    /**
     * 预计试模时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date plannedTime;

    /**
     * 实际试模时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date practicalTime;

    /**
     * 试模设备
     */
    private String moldTestingDevice;

    /**
     * 试模次数
     */
    private String tryOutTimes;

    /**
     * 试模件数
     */
    private Integer tryOutDeviceCount;

    /**
     * 备注
     */
    private String remark;

    /**
     *  项目名称
     */
    private String projectName;

    /**
     * 模具要求完成时间
     */
    private String requiredTime;

    /**
     * 烘料要求
     */
    private String bakingMaterialsRequirements;

    /**
     * 试模台时费（元/小时）
     */
    private String price;

    /**
     * 模具试模地址
     */
    private String tryOutAddress;

    /**
     * 模具定模重量
     */
    private String dingmoWeight;

    /**
     * 模具动模重量
     */
    private String dongmoWeight;

    /**
     * 模具动作注意事项
     */
    private String moldActionPrecautions;

    /**
     * 试模目的
     */
    private String targetId;

    /**
     *模具外形
     */
    private String moldLook;

    /**
     * 几点浇注
     */
    private String pourTime;

    /**
     * 几点温控
     */
    private String temperatureControlTime;

    /**
     * 是否需要液压工作站
     */
    private String needHydraumaticStation;

    /**
     * 几点顺序注塑
     */
    private String injectionMoldingTime;

    /**
     * 是否有限位开关
     */
    private String hasLimitSwitch;

    /**
     * 热点偶型号
     */
    private String hotSpotPairType;

    /**
     * 是否有时间继电器
     */
    private String hasTimeRelay;

    /**
     * 制件材料
     */
    private String materials;

    /**
     * 试模件数
     */
    private String moldCount;

    /**
     * 制件颜色
     */
    private String color;

    /**
     * 材料重量
     */
    private String materialsCount;

    /**
     * 样件重量
     */
    private String samplePieceWeight;

    /**
     * 模具重量
     */
    private String moldWeight;

    /**
     * 试模原因
     */
    private String tryOutReasonId;

    /**
     * 外观要求
     */
    private String surface;

    public String getTryOutTimes() {
        return tryOutTimes;
    }

    public void setTryOutTimes(String tryOutTimes) {
        this.tryOutTimes = tryOutTimes;
    }

    public TestModelSubTable() {
    }

    public TestModelSubTable(String planId, String parentPlanId, String moldId, String moldName, String customerName, String tongmanName, String materialName, String materialWeight, String projectManagerId, Date plannedTime, Date practicalTime, String moldTestingDevice, String tryOutTimes, Integer tryOutDeviceCount, String remark, Date createTime, Date updateTime) {
        this.planId = planId;
        this.parentPlanId = parentPlanId;
        this.moldId = moldId;
        this.moldName = moldName;
        this.customerName = customerName;
        this.tongmanName = tongmanName;
        this.materialName = materialName;
        this.materialWeight = materialWeight;
        this.projectManagerId = projectManagerId;
        this.plannedTime = plannedTime;
        this.practicalTime = practicalTime;
        this.moldTestingDevice = moldTestingDevice;
        this.tryOutTimes = tryOutTimes;
        this.tryOutDeviceCount = tryOutDeviceCount;
        this.remark = remark;
        this.createTime = createTime;
        this.updateTime = updateTime;
    }

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonProperty(value = "addTime", access = JsonProperty.Access.READ_ONLY)
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}